import { Floor, Room } from '.';
import { Wall } from './wall';

export class Samples {
  /**
   * 单层
   * @returns 楼层
   */
  singleFloor(y = 0) {
    const floor = new Floor();
    /**
     * 创建16个房间
     * 前8个z开始位置: -1500
     * 后8个z开始位置: 1500
     *
     * 创建8个房间
     * 左4个x开始位置: -4000
     * 右4个x开始位置: 4000
     */
    for (let i = 1; i <= 24; i++) {
      let x, z;
      if (i <= 8) {
        // 往右移
        x = i * 1_000 - 4500;
        // 往前移
        z = -2_500;
      } else if (i > 8 && i <= 16) {
        // 往右移
        x = (i - 8) * 1_000 - 4500;
        // 往后移
        z = 2_500;
      } else if (i > 16 && i <= 20) {
        x = -3_500;
        z = -(i - 16) * 1_000 + 2_500;
      } else {
        x = 3_500;
        z = (i - 20) * 1_000 - 2_500;
      }
      const room = new Room({ x, y, z });
      floor.add(room);
    }
    return floor;
  }

  /**
   * 多层
   * @returns 楼层数组
   */
  multiFloors() {
    const floors = [];
    for (let i = 0; i < 6; i++) {
      const floor = this.singleFloor(i * 1000);
      floors.push(floor);
    }
    return floors;
  }

  /**
   * 墙和窗户
   */
  wallWithWidnow() {
    return new Wall();
  }
}
